export const useTable = () => {
  // 定义一个变量用于存储上一个单元格的值
  let prevValue = null;
  // 定义一个变量用于存储当前单元格需要合并的行数
  let rowspan = 1;
  // 定义一个变量用于存储当前单元格需要合并的列数
  let colspan = 1;

  function spanMethod(row, column) {
    // 获取当前单元格的值
    const value = row[column.property];
    // 如果当前单元格的值和上一个单元格的值相同，则需要合并行
    if (value === prevValue) {
      rowspan++;
      // 如果当前单元格是最后一列，则合并行并重置变量
      if (column.index === row.length - 1) {
        const result = { rowspan, colspan };
        prevValue = null;
        rowspan = 1;
        colspan = 1;
        return result;
      }
      // 如果不是最后一列，则只合并行
      return { rowspan: 0, colspan: 0 };
    }
    // 如果当前单元格的值和上一个单元格的值不同，则需要合并列
    if (prevValue !== null) {
      const result = { rowspan, colspan };
      rowspan = 1;
      colspan = 1;
      // 如果当前单元格是最后一列，则不需要再合并列
      if (column.index === row.length - 1) {
        prevValue = null;
      }
      return result;
    }
    // 如果是第一个单元格，则不需要合并行和列
    prevValue = value;
    return { rowspan: 1, colspan: 1 };
  }
  
  return {
    spanMethod
  }
}